home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 12 / Amiga Format AFCD12 (Apr 1997, Issue 96).iso / -in_the_mag- / html_tutorial / mas_env.cpp < prev    next >
C/C++ Source or Header  |  1997-01-21  |  3KB  |  71 lines

  1. // (C) M.A.Smith University of Brighton
  2. //
  3. // Permission is granted to use this code
  4. //   provided this declaration and copyright notice remains intact.
  5. //
  6. // 26 August 1995 - April 7 1996
  7.  
  8. #include <iostream.h>
  9. #include <fstream.h>
  10. #include <iomanip.h>
  11. #include <stdlib.h>
  12. #include <time.h>
  13. #include <string.h>
  14.  
  15. void cgi_var_output();
  16. char* getenv_n( char [] );
  17.  
  18. // Output an HTML line
  19.  
  20. inline void html( char str[] ) { cout << str << "\n"; }
  21.  
  22. inline void html_( char str[] ) { cout << str; }
  23.  
  24. inline void html_( char c ) { cout << c; }
  25.  
  26. // Main program
  27.  
  28. int main()
  29. {
  30.   html("Content-type: text/html"); html("");  // Type of output
  31.   cgi_var_output();                           // Environment variables
  32.   return 0;
  33. }
  34.  
  35. char* getenv_n( char var[] )
  36. {
  37.   char *p = getenv( var );                    // Contents
  38.   return p == NULL ? "[]" : p;                // But it may not exist
  39. }
  40.  
  41. void cgi_var_output( )
  42. {
  43.   html( "<PRE>" );
  44.   html_("AUTH_TYPE         "); html( getenv_n( "AUTH_TYPE" ) );
  45.   html_("CONTENT_LENGTH    "); html( getenv_n( "CONTENT_LENGTH" ) );
  46.   html_("CONTENT_TYPE      "); html( getenv_n( "CONTENT_TYPE" ) );
  47.   html_("GATEWAY_INTERFACE "); html( getenv_n( "GATEWAY_INTERFACE" ) );
  48.   html_("HOSTTYPE          "); html( getenv_n( "HOSTTYPE" ) );
  49.   html_("HTTP_ACCEPT       "); html( getenv_n( "HTTP_ACCEPT" ) );
  50.   html_("HTTP_CONNECTION   "); html( getenv_n( "HTTP_CONNECTION" ) );
  51.   html_("HTTP_HOST         "); html( getenv_n( "HTTP_HOST" ) );
  52.   html_("HTTP_PRAGMA       "); html( getenv_n( "HTTP_PRAGMA" ) );
  53.   html_("HTTP_REFERER      "); html( getenv_n( "HTTP_REFERER" ) );
  54.   html_("HTTP_USER_AGENT   "); html( getenv_n( "HTTP_USER_AGENT" ) );
  55.   html_("OSTYPE            "); html( getenv_n( "OSTYPE" ) );
  56.   html_("PATH_INFO         "); html( getenv_n( "PATH_INFO" ) );
  57.   html_("PATH_TRANSLATED   "); html( getenv_n( "PATH_TRANSLATED" ) );
  58.   html_("QUERY_STRING      "); html( getenv_n( "QUERY_STRING" ) );
  59.   html_("REMOTE_ADDR       "); html( getenv_n( "REMOTE_ADDR" ) );
  60.   html_("REMOTE_HOST       "); html( getenv_n( "REMOTE_HOST" ) );
  61.   html_("REMOTE_IDENT      "); html( getenv_n( "REMOTE_IDENT" ) );
  62.   html_("REMOTE_USER       "); html( getenv_n( "REMOTE_USER" ) );
  63.   html_("REQUEST_METHOD    "); html( getenv_n( "REQUEST_METHOD" ) );
  64.   html_("SCRIPT_NAME       "); html( getenv_n( "SCRIPT_NAME" ) );
  65.   html_("SERVER_NAME       "); html( getenv_n( "SERVER_NAME" ) );
  66.   html_("SERVER_PORT       "); html( getenv_n( "SERVER_PORT" ) );
  67.   html_("SERVER_PROTOCOL   "); html( getenv_n( "SERVER_PROTOCOL" ) );
  68.   html_("SERVER_SOFTWARE   "); html( getenv_n( "SERVER_SOFTWARE" ) );
  69.   html( "</PRE>" );
  70. }
  71.